package com.jr.bitcoin.request;

import java.util.Map;

//该类用于封装提供网络请求的功能代码，用于发起网络请求，并返回网络请求的数据

//public class HttpUtils {
//
//    /**
//     * 该函数用于实现get请求，并将请求结果进行返回
//     *
//     * @param path 请求的资源路径
//     * @return 请求结果
//     */
//
//    public static String get(String path) {
//        InputStream inputStream = null;
//        InputStreamReader inputStreamReader = null;
//        BufferedReader reader = null;
//        String line = "";//最开始空行
//        String result = "";//每次读取到以后都要累积起来的读取结果
//        try {
//            //Union Resource Location 统一资源定位
//            URL url = new URL(path);
//            URLConnection conn = url.openConnection();
//            //进行连接
//            conn.connect();
//
//            inputStream = conn.getInputStream();
//
//            //字符流：按行读
//            inputStreamReader = new InputStreamReader(inputStream);
//            reader = new BufferedReader(inputStreamReader);
////            String line = reader.readLine();
////            while (line !=null){
////                reader.readLine();
////            }
//            while ((line = reader.readLine()) != null) {
//                result += line;
//            }
//
//        } catch (MalformedURLException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            //关闭读取流
//            try {
//                if (reader != null) {
//                    reader.close();
//                }
//                if (inputStreamReader != null) {
//                    inputStreamReader.close();
//                }
//                if (inputStream != null) {
//                    inputStream.close();
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//            return result;
//        }
//    }
//
//    /**
//     * 封装的用java 实现的原生post 请求
//     * Ctrl + Alt + L
//     * @param path   请求的路径
//     * @param header 请求头的设置信息
//     * @param date   请求数据
//     * @return 请求的响应结果
//     */
//
//    public static String post(String path, Map<String, String> header, byte[] date) {
//        OutputStream outputStream = null;
//        BufferedReader reader = null;
//        //io:
//        // 输入流：字节输入流，字符读取流
//        // 输出流：字节输出流，字符写入流
//        // 字节字符转换流
//
//        String result = "";//result表示最后要返回的数据
//        try {
//            URL url = new URL(path);
//            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//            //设置可以发送数据和接受数据
//            conn.setDoInput(true);
//            conn.setDoOutput(true);
//
//            //设置请求头属性
//            //ContentType:application/json
//            //Authorization:"Basic " + base64(用户信息)
//            if (!header.isEmpty()) {
//                //header不为空，将header中的数据遍历，设置到请求头中
//                //如何遍历map?
//                //key value
//                //如何拿到 map 中的所有的 key
//                Set<String> keys = header.keySet();
//                //如何遍历set？foreach, 迭代器iterator
//                for (String key : keys) {
//                    String value = header.get(key);
//                    conn.setRequestProperty(key, value);
//                }
//            }
//
//
//            conn.connect();
//            //把请求数据发送到请求的服务端
//            outputStream = conn.getOutputStream();
//            outputStream.write(date);
//            outputStream.flush();
//
//            //等待接收返回的数据
//
//            reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//            String line = null;
//            while ((line = reader.readLine()) != null) {
//                result += line;
//            }
//        } catch (MalformedURLException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            try {
//                if (reader != null) {
//                    reader.close();
//                }
//                if (outputStream != null) {
//                    outputStream.close();
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//
//        return result;
//
//    }
//
//}
public class HttpUtils{
      //url: http://www.xxxx?city =&name
    public static String get(String route){

        return route;
    }

    public static String post(String bitcoinRpcUrl, Map<String, String> header, byte[] bodyBytes) {
        String route = null;

        return route;
    }
}
